約 2,795,244 件
https://w.atwiki.jp/setechdiv/pages/49.html
ASP(Active Server Pages) マイクロソフトが開発した、ウェブページを動的に作成する技術。 マークアップ言語(HTMLなど)とスクリプト言語(VBScript,JAVAScriptなど)を組み合わせることで、 動的なウェブページの作成を可能にしている。 ASPを動作させるためのウェブサーバ用ソフトウェアは、IIS(Internet Infomation Services)、Parsonal Web Serverというものがある。 IISはWindows NT Server/Windows 2000から標準で付属する。 概要 クライアントはWebブラウザなどを通じてサーバに要求を行う。 クライアントからの要求は(従来ブラウザで処理されてたが)サーバ側のスクリプトで処理され、 処理結果として生成されたHTMLがクライアントに返される。 .
https://w.atwiki.jp/www-iris/pages/1389.html
「ロックマン、追加のチップデータ送るから1ターン待って!」 【システム名】 ADD 【読み方】 あど 【登場作品】 『1』~『3』『OSS』 【詳細】 カスタム画面で使えるシステムの1つ。 正式名称は「ADDitional chip data」。 「additional」は「追加」を意味する。「耐える」「待つ」や、特に『2』や『3』の仕様を見て「捨てる」という意味だと勘違いしないように。 『1』と『OSS』ではこのターンのチップ選択を放棄し、次のターン追加でチップを5枚オープンするコマンド。 つまり発動した次のターンではチップ選択画面に10枚チップが並ぶことになる。 『1』では効果が2回まで重複し、(チップ無しの戦闘を2ターン続ける必要があるものの)最大15枚のチップオープンが可能。『OSS』では最大10枚に変更された。 しかし一度に送れるチップが5枚であることは変わらず、オープン状態はそのターンしか継続しない為確実に持て余す。 また後のシリーズと異なり不要なチップを自主的に破棄する機能ではないため、チップの回転にはあまり寄与しない機能ではある。 『2』と『3』では、選択したチップを廃棄することで以降のターンのチップオープン数を増やすコマンド。 『1』と異なりチップを破棄する必要こそあるものの、これはP.Aやコンボに不要な札を自主的に破棄できるという事でもある為、結果的にチップの回転は非常に早くなる。 この戦闘中ずっと効果も続くのがミソで、最初に使っておけば後の立ち回りが有利になるだろう。 特に『3』ではナビカスタマイザーにクイックゲージを組み込めるので1ターン目から使用するのもアリ。 リスクを考えると考えなしに使うのものではないが、時間稼ぎできるタイミングを狙って使うことができれば大きなアドバンテージが待っている。
https://w.atwiki.jp/sampleisbest/pages/599.html
開発環境 Microsoft Visual Studio Community 2019 実行環境 Microsoft Windows 10 Home (64bit) プロジェクトの作成 メニューから[ファイル]-[新規作成]-[プロジェクト]を選択。 プロジェクト テンプレート 空のプロジェクト(C++) プロジェクト名 add32 場所 (例) C \Projects\masm cppファイルの追加 メニューから[プロジェクト]-[新しい項目の追加]を選択。 名前 add32.cpp #include Windows.h #include stdio.h extern "C" DWORD __cdecl add32(DWORD, DWORD); extern "C" DWORD __cdecl add32c(DWORD, DWORD); extern "C" DWORD __stdcall add32s(DWORD, DWORD); int main() { DWORD ret; ret = add32(123, 456); printf("%d\n", ret); ret = add32c(12, 34); printf("%d\n", ret); ret = add32s(56, 78); printf("%d\n", ret); return 42; } asmファイルの追加 プロジェクトのディレクトリにexfunc.asmという空のファイルを作る。 メニューから[プロジェクト]-[既存の項目の追加]を選択。 ※cppと同じ名前にするとobjがバッティングする。 .model flat .code _a$ = 8 _b$ = 12 _add32 proc pushebp movebp, esp moveax, _a$[ebp] addeax, _b$[ebp] leave ret _add32 endp add32c proc c a dword, b dword moveax, a addeax, b ret add32c endp add32s proc stdcall a dword, b dword moveax, a addeax, b ret add32s endp end ビルドのカスタマイズ ソリューション エクスプローラーのプロジェクト(add32)を右クリックし、[ビルドの依存関係]-[ビルドのカスタマイズ]を選択。 masm(.targets, .props)にチェックを付ける。 exfunc.asmを右クリックし、[プロパティ]を選択。 項目の種類 Microsoft Macro Assembler ビルド ツールバーの項目を設定。 ソリューション構成 Release ソリューション プラットフォーム x86 メニューから[プロジェクト]-[プロパティ]を選択。 構成プロパティ/Microsoft Macro Assembler Listing File/List All Available Information はい (/Sa) Listing File/Assembled Code Listing File $(IntDir)%(FileName) Advanced/Use Safe Exception Handlers はい (/safeseh) メニューから[ビルド]-[ソリューションのビルド]を選択。(Ctrl+Shift+B) exfunc.lst からの抜粋 . = 00000008_a$ = 8 = 0000000C_b$ = 12 00000000_add32 proc 00000000 55pushebp 00000001 8B ECmovebp, esp 00000003 8B 45 08moveax, _a$[ebp] 00000006 03 45 0Caddeax, _b$[ebp] 00000009 C9leave 0000000A C3ret 0000000B_add32 endp 0000000Badd32c proc c a dword, b dword 0000000B 55 * push ebp 0000000C 8B EC * mov ebp, esp 0000000E 8B 45 08moveax, a 00000011 03 45 0Caddeax, b ret 00000014 C9 * leave 00000015 C3 * ret 00000h 00000016add32c endp 00000016add32s proc stdcall a dword, b dword 00000016 55 * push ebp 00000017 8B EC * mov ebp, esp 00000019 8B 45 08moveax, a 0000001C 03 45 0Caddeax, b ret 0000001F C9 * leave 00000020 C2 0008 * ret 00008h 00000023add32s endp 実行 メニューから[デバッグ]-[デバッグなしで開始]を選択。(Ctrl+F5)
https://w.atwiki.jp/atachi/pages/22.html
コレクションの種類 ObservableCollection WPFでの使用が可能 データバインディング対応 LinkedList 双方向リスト 途中に要素を追加したり、削除するなら通常のListより効率がよい。 Queue 先入れ先出し(FIFO)リスト Stack 後入れ先出し(LIFO)リスト IEnumerator T コレクションの運用方法 クラスがpublicとして外部にコレクションを公開するフィールドやプロパティにはICollection / ICollection T を使います。 Listなどのコレクションの実態を返してしまうと、クラスが別の実体のコレクションを実装する場合に公開しているプロパティの型と参照している参照先をすべて変更しなければならなくなります。 線形リスト List T 非推奨。複雑であり、拡張しずらい Collection T 推奨。シンプル。 ObservableCollection T カスタムコントロールの設計でコレクションのプロパティを公開する場合に使用する Collection T 型 を使うことが推奨されます。 その理由にはCollectionは拡張性を考慮した設計を行っていることと、コレクションとして最低限必要なインターフェースだけを実装している点です。また、Collection T →List T への変換は簡単に行えます。 Collection T 型 を使用する場合でも、「Collection MyClass arr = new Collection MyClass ()」とするよりもMyClassクラスを要素に持つCollection T 型を継承したクラスを作成すべき。(小さな手間以上の利点がある) class MyClassCollection Collection MyClass { // 利点として、SortやEmptyなどのメソッドを独自に実装できる } 下記は、List T 型 によるコレクション。 List string messages = new List string (); messages.Add("リストでは"); messages.Add("任意の場所に要素を追加できるよ"); List string messages = new List string (); messages.Add("リストでは"); messages.Add("任意の場所に要素を追加できるよ"); List string messages2 = new List string (); messages2.Add("末尾に付け足すこともできる"); messages.AddRange(messages2); 読み取り専用のコレクション List T .AsReadOnly() ReadOnlyCollection foreachによるコレクションの操作 foreach内での要素追加・削除 foreach内ではコレクションへの要素の追加・削除はできません。 これらを行おうとすると、実行時に「コレクションが変更されました。列挙操作は実行されない可能性があります。」というエラーメッセージとともに例外が投げられます。 理由は説明するまでもなく、コレクションの走査中に内部に格納した要素の位置や順序が変わるということは正しい順序で走査できないためです。 解決策には、走査したいコレクションと同じ順番のコレクション(配列)を作成し、そのコレクションでforeachを実行する事になります。 // MyDataは何らかのクラス(参照クラスまたは値クラス) ICollection MyData mydatas = new Collection MyData (); mydatas.Add(new MyData{name="test"}); ... // 適当にmydatasコレクションへ要素を追加 // foreachのための配列を作成 MyData[] dmy = new MyData[mydatas.Count]; foreach(var obj in dmy){ if(obj.name.StartWith("t")){ mydatas.Remove(obj); } } foreachを直接mydatasコレクションを使うと上記のコードでは例外が発生する(*1) CopyToメソッドは任意の配列に要素をコピー(シャローコピー)するメソッド。 これにより新たな配列が確保される。シャローコピーなので、要素のインスタンスは新しくヒープに作成されません。 ただし、調子によって次のようなコードでも...と思うと痛い目に遭う。 // foreachのためのコレクションを作成 ICollection MyData secondCollection = new Collection(mydatas); foreach(var obj in secondCollection){ if(obj.name.StartWith("t")){ mydatas.Remove(obj); } } Collectionクラスのコンストラクタには別のコレクションを引数にする定義があります。 しかし、このコンストラクタは新たなコレクションを作り出す意味ではなく、引数のコレクションをラップするコレクションを作成するためのコンストラクタです。 要素を格納しているリストそのものは、mydatasとsecondCollectionは同じものを示しているため、foreach文が使うsecondCollectionのリストへの変更はそのままmydatasコレクションのリスト操作へ繋がるため、上記のコードではやはり例外が発生します。 foreach文での要素への値設定 foreach文の要素の走査でのループ決定のタイミングについてですが、 foreach文では最初の呼び出し時にコレクションのIEnumerable.GetEnumerator()が呼び出されイテレータが取得されます。 あとはイテレータのMoveNext()を呼び出し次の要素を取得していきます。最後はMoveNext()がnullを返したときにループを終了します。 foreachのループ順序はforeachが決めているのではなく、コレクションが定義したIEnumerableによって決定されます。 そのため、コレクションが持つIEnumerableの実装方法によってforeach内での要素への値設定は不正となる可能性が出てきます。 ICollection MyData items = new MyDataCollection(mydatas); // MyDataCollectionは独自に定義したコレクションクラス int lastOrder = 0; foreach(var item in items){ lastOrder = item.Order; item.Order = items[MyDataCollection.Count]; } 潜在的にバグがあるであろうと誰でもわかるように上記のコードとしました。 このバグはコンパイラは報告してくれません(*2) 「誰でもわかる」というのは、MyData.OrderというプロパティがおそらくMyDataCollectionでの要素の位置を示しているであろうことを、開発者は直感で感じ取るからです。 foreach内で要素の順番に関わるプロパティの値を変更することは、プログラムが復帰不可能となるか無限ループに陥ります。 このサンプルのように、明らかに要素の順番に関わっているであろうことがわかる場合ならよいのですが、現実にはそうでない場合がほとんどです。 この問題を引き起こさないためには、開発時にプロジェクト全体で1つのシナリオを定義しておくべきです。 ただし、「foreach内で要素のプロパティ値を設定しない」だけでは不十分です。要素のメソッドの呼び出しも注意が必要です。 foreach内で呼び出した要素のメソッドがOrder値を変更するような実装をしていたら上記と同じことになります。 このようなバグを回避するには、foreachを使わない、もしくはOrderをreadonlyとして宣言しておくなどのプロジェクト全体でこの問題についてのシナリオを議論する必要があります。 要素への逐次処理 C#ではラムダ式が使えるので、配列やコレクション内の要素に対して値を取得したり設定する場合に次のような記述ができます。 int[] array = { 1, 2, 3 }; int sum = 0; Array.ForEach int (array, (i) = // Array.ForEach { sum += i }); ただし、この書き方は推奨できません。 デバッグがしづらいです。そのままforeach文として記述できるので、foreach文で書くべきです。 System.Array C#ではラムダ式が使えるので、System.Arrayが定義する配列に対する操作がかなり簡潔に書けるようになりました(ほとんど、ワンライナーで記述が可能) string[] names = new[] { "北海道", "本州", "四国", "九州", "沖縄" }; // ■ Findメソッド string name = Array.Find(list, s = s.Length == 3); Console.WriteLine(name); // ■ Exists // 任意の条件に一致する要素がある場合true bool b = Array.Exists(list, s = s.StartWith("四") ); Console.WriteLine(b); // ■FindIndex // 任意の要素の位置 int index = Array.FindIndex(list, s = s == "本州"); Console.WriteLine(index); // ■ForEachメソッド // foreach構文と同じ。 Array.ForEach(list, s = Console.WriteLine(s)); // ■Sortメソッド Array.Sort(list, (x, y) = x.Length - y.Length); Array.ForEach(list, s = Console.WriteLine(s)); // ■ConvertAll string[] list2 = Array.ConvertAll(list, s = s.ToLower()); Array.ForEach(list2, s = Console.WriteLine(s)); 文字列配列の文字列一致 文字列型の配列から、特定の文字と完全に一致する要素があるかを検証する処理は簡単にできます。 string[] PrefectureNames = new string[] { "北海道", "青森", "岩手", "宮城", "秋田" }; if(PrefectureNames.Contains("岩手")) System.Console.WriteLine("「岩手」は配列に存在します"); IList.Containsメソッドを使うと、引数のオブジェクトと一致する要素がある場合にtrueを返します。 .NET Frameworks3.0以降で有効
https://w.atwiki.jp/karaiknowledge/pages/7.html
ASP.netでJavaScriptを登録する方法 1. 参考URL ClientScriptManager.RegisterStartupScript メソッド (MSDNフォーラム) MSDN
https://w.atwiki.jp/sklab/pages/21.html
配列 スタックに参照、ヒープにデータが入る。 ArrayList:重い ArrayListクラスは複数のデータ型を混在させることが出来る。 ArrayList al = new ArrayList(); al.Add = 123; al.Add = abc 値の格納時にボックス化を行っているから。 Console.WriteLine((int)al[0]); ← ボックス解除する必要がある。 object array = new object[5]; array[0] = (object)123;というイメージか。エラーになってしまったが。 取り出すときは基本的にボックス解除する必要がある。 インデクサ:オブジェクトに対して、配列のようなアクセスを可能にする。 Listなどで List strList = new List(); strList.Add( test ); Console.WriteLine(strList[0]); とアクセスできるがこれはコレクションを扱うクラスではインデクサが設定済みのためである。 Dictionaryクラス キーと値をペアで管理する。 var dicObj = new Dictionary(); O(1)で検索できるアルゴリズム strArray[N] ={ alice , bob , carol }; var dicObj = new Dictionary(); int count = 0; foreach(string str in strArray){ dicObj.Add(str,count); } Console.WriteLine( dicObj[ carol ] + 番目がcarolです。 ); 間違ってるかも
https://w.atwiki.jp/cocet/pages/30.html
30add 【他】加える addition 「加える、足す」という意味の基本となる語。
https://w.atwiki.jp/touchdevelop/pages/23.html
配列 数値配列 文字列配列 JSON その他 数値配列 グローバル変数("data")ではNumber Map、ローカル変数(var)ではmath → create number mapを使用します。 数値配列は整数インデックスで値を格納しますが、実際には連想配列に近い動作になります。 データの追加は次のように行います。 例// data → vは"data"でNumber Mapとして定義 // Number Mapはcreate number mapをしておかないと使用できない data → v = math → create number map // インデックス5に123を設定 data → v → set at(5,123) // インデックス8に987を設定 data → v → set at(8,987) Number Mapは必ずcreate number mapで初期化しないと値の追加ができません。 もしセーブデータ的な使い方で前回実行時の値を残しておきたい場合は、if data → v → is invalid then等で判断して、初期化されていなければcreate number mapを行うといった処理にする必要があります。 値の取り出しはdata → v → at(5)やdata → v → at(8)のように行います。 登録されている全ての値を取り出すにはfor eachを使用します。 例// data → vに保存されている全ての値を取り出す for each x in data → vwhere true do// xにはインデックスが入っている x → to string → concat("=") → concat(data → v → at(x)) → post to wall 結果はこうなります(post to wallは上の方が新しい行になります)。 finished 8=987 5=123 他言語であれば通常の配列は「インデックスの最大数+1=配列の個数」となりますが、このNumber Mapでは「実登録数=配列の個数」となります。 上記例でいえばdata → v → countは2となります(他言語なら9となる)。 このため、for eachではなくforを使用すると期待通りの結果が得られない場合があります。 例// forを使って全ての値を取り出そうとすると… for 0 ≦ i data → v → count doi → to string → concat("=") → concat(data → v → at(i)) → post to wall このようにインデックス0~1の2個しか取り出せないことがわかります。 finished 1=0 0=0 もちろんdata → v → countを使わずにfor 0 ≦ i 9 doのように指定すればインデックス0~8の全ての値を取り出すことができます。 文字列配列 グローバル変数("data")でString Collectionで作成できます(ローカル変数で作成できるかどうかは調査中)。 文字列配列は一般的なインデックスを使ったリニアな配列です。 また、Number Mapと異なり初期化が不要です。 データの追加は次のように行います。 例// data → sは"data"でString Collectionとして定義 // 初期化は不要だが前回実行時の値が残っているのでクリア data → s → clear // データを追加・インデックスは0になる data → s → add("abcde") // データを追加・インデックスは1になる data → s → add("日本語も使えます") // データを追加・インデックスは2になる data → s → add("てすとです") String Collectionのデータ追加(add)はインデックスが0から順に1、2、3…と追加する毎に自動的に加算されていきます。 一度登録したデータは削除することはできますが、内容を書き換えたり途中に追加したりはできません。 途中のデータを削除した場合は空いた分は詰められます。 例えば上記例ではこのようにデータが格納されています。 0 abcde 1 日本語も使えます 2 てすとです ここでdata → s → remove at(1)としてインデックス1のデータを削除するとこう変わります。 0 abcde 1 てすとです 全てのデータを取り出す方法はNumber Mapと同じでfor eachが使用できます。 また、String Collectionではインデックスとcountが一致するためfor 0 ≦ i data → s → count doでも問題なく動作します。 JSON 簡単にいうと多重に入れ子にできる多次元連想配列です。 jsonに登録したいデータをstringに入れて、(json object)hoge = web → json(s)が一番手軽です。 通常のリニアな配列のように使用する場合は[値1, 値2, 値3]のように[]でくくり、連想配列にしたい場合は{"キー1" 値1, "キー2" 値2, "キー3" 値3}のように{}でくくります。 []と{}を組み合わせることも可能です。 例えば値1、2、"abc"を入れたい場合は次のように文字列を作成します。 [1, 2, "abc" ] これを取り出す場合は次のようにします(例:jに格納されているとする)。 j → at(0) → post to wall キーを付けて連想配列としたい場合は次のように文字列を作成します。 {"x" 1, "y" 2, "z" "abc" } これを取り出す場合は次のようにします(例:jに格納されているとする)。 j → field("z") → post to wall 多次元にしたい場合はこのような書き方になります。 {"hoge" [ {"x" 1, "y" 2, "z" "abc" }, "x" 9, "y" 8, "z" "def" } ] } これを取り出す場合は次のようにします(例:jに格納されているとする)。 j → field("hoge") → at(1) → field("y") → post to wall キーを使わないシンプルな書き方ではこうなります。 [[1, 2, "abc" ], [9, 8, "def" ] ] これを取り出す場合は次のようにします(例:jに格納されているとする)。 j → at(1) → at(2) → post to wall さらに複雑な構造でデータを扱うことも可能です。 詳細はwikipediaを見てください。 http //ja.wikipedia.org/wiki/JavaScript_Object_Notation その他 数値、文字列以外にもオブジェクトをまとめる配列も存在します。 下記にいくつか例を挙げます。 種別 内容 Pictures 画像(Picture) Songs 曲(Song) Sprite Set スプライト(Sprite) これらも基本的な使い方は変わりません。
https://w.atwiki.jp/sampleisbest/pages/598.html
開発環境 Microsoft Visual Studio Community 2019 実行環境 Microsoft Windows 10 Home (64bit) 参考 VisualStudioでx64アセンブリを書き、実行する方法 - 備忘録 https //kagasu.hatenablog.com/entry/2018/01/03/200337 プロジェクトの作成 メニューから[ファイル]-[新規作成]-[プロジェクト]を選択。 プロジェクト テンプレート 空のプロジェクト(C++) プロジェクト名 add64 cppファイルの追加 メニューから[プロジェクト]-[新しい項目の追加]を選択。 名前 add64.cpp #include Windows.h #include stdio.h extern "C" DWORD add64(DWORD, DWORD); int main() { DWORD ret = add64(123, 456); printf("%d\n", ret); return 42; } asmファイルの追加 プロジェクトのディレクトリにexfunc.asmという空のファイルを作る。 メニューから[プロジェクト]-[既存の項目の追加]を選択。 ※cppと同じ名前にするとobjがバッティングする。 .code add64 proc movrax, rcx addrax, rdx ret add64 endp end ビルドのカスタマイズ ソリューション エクスプローラーのプロジェクト(add64)を右クリックし、[ビルドの依存関係]-[ビルドのカスタマイズ]を選択。 masm(.targets, .props)にチェックを付ける。 exfunc.asmを右クリックし、[プロパティ]を選択。 項目の種類 Microsoft Macro Assembler ビルド ツールバーの項目を設定。 ソリューション構成 Release ソリューション プラットフォーム x64 メニューから[ビルド]-[ソリューションのビルド]を選択。(Ctrl+Shift+B) 実行 メニューから[デバッグ]-[デバッグなしで開始]を選択。(Ctrl+F5)
https://w.atwiki.jp/pjsvr2007/pages/21.html
Project Server 本体のインストールまでに必要な各種作業についてです。 IISの有効化 IIS を有効化する際、Windows Server 2003 のインストールCD(1枚目)が必要になるので、あらかじめ準備しておいてください。 まず、「管理ツール」→「サーバの役割管理」をクリックし、「サーバの構成ウィザード」画面を開きます。 「アプリケーション サーバー(IIS, ASP.NET)」にチェックを入れ、「次へ」を押します。 「ASP.NETの有効化」にチェックを入れ、「次へ」を押します。 そのまま「次へ」を押します。 「完了」を押し、ウィザードを完了します。 以上でIISが有効化されます。 ASP.NET v2.0 の登録 Windows Update/Microsoft Update のいずれかで、.NET Framework v2.0, .NET Framework 3.0 の両方をインストールします。通常は、これだけで ASP.NET v2.0 が正しくインストールされます。正常にインストールが完了すると、IISマネージャにて以下のように表示されます。 もしうまくインストールされていない場合は、以下のコマンドを実行してみてください。 C \Documents and Settings\Administrator C \WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i ASP.NET (2.0.50727) のインストールを開始します。 .......................... ASP.NET (2.0.50727) のインストールが完了しました。